-
Notifications
You must be signed in to change notification settings - Fork 143
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Force explicit encoding/decoding of arguments and return values to calls to Erlang #194
Open
rvirding
wants to merge
17
commits into
develop
Choose a base branch
from
develop-encode
base: develop
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
We go very explicit here and assume that all Luerl functions require their arugments to be explicitly encoded and return values decoded. This is still a test version.
Also commented out some test output.
So luerl_new has now become the luerl. For backwards compatibility save the old luerl unchanged as luerl_old. The documentation and test suites have updated as well. A major change in luerl is the encoding/decoding of functions which are assumed to use encoded arguments and return values.
These just call the erlang module functions moving the state to the first argument.
Fix tests on develop-encode
Adds an API that allows a consumer of Luerl to store private data that can be retrieved from functions called within Lua. This is useful in applications that may need to retrieve secrets from within Luerl, but don't want Lua scripts to be able to access these values. I've chatted with a number of users of Luerl, including Sam Aaron, who have had the need to expose secrets into their Luerl programs. Some have achieved this by using closures to close over private data and expose those functions to Luerl. I have used the process dictionary to acheive the same thing. If Luerl had an API to store and retrieve private data, as proposed by this PR, then both techniques would be unnecessary. Provide a `update_private/2` function instead that takes a function that can modify the private map - [ ] Get a nod from Robert - [ ] Implement in other "Elixir" API - [ ] Decide if we need to implement for "old" - [ ] Tests - [ ] Documentation
API for storing and retrieving "private" data
Also update luerl_sandbox.erl.
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
NOTE that this branch is still experimental and probably needs working on.